package com.ruoyi.system.domain.vo;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户余额VO对象
 * 用于余额查询时返回包含用户信息的完整数据
 * 通过关联查询获取余额信息和用户基本信息（昵称、账号等）
 * 注意：super_balance表没有create_time和update_time字段
 * 
 * @author ruoyi
 * @date 2025-08-14
 */
public class SuperBalanceVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户余额表主键ID */
    private Long id;

    /** 用户ID，关联sys_user表的user_id字段 */
    private Long userId;

    /** 用户昵称，从sys_user表关联查询获得 */
    private String nickName;

    /** 用户账号，从sys_user表关联查询获得 */
    private String userName;

    /** 用户当前余额，精确到分 */
    private java.math.BigDecimal balance;

    /** 变更余额数（可选字段，用于余额变更记录） */
    private java.math.BigDecimal changeBalance;

    /** 变更类型（1增加 2减少，可选字段，用于余额变更记录） */
    private Integer changeType;

    /** 变更原因（可选字段，用于余额变更记录） */
    private String changeReason;

    /**
     * 设置用户余额表主键ID
     * @param id 用户余额表主键ID
     */
    public void setId(Long id) 
    {
        this.id = id;
    }

    /**
     * 获取用户余额表主键ID
     * @return 用户余额表主键ID
     */
    public Long getId() 
    {
        return id;
    }

    /**
     * 设置用户ID
     * @param userId 用户ID，关联sys_user表的user_id字段
     */
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    /**
     * 获取用户ID
     * @return 用户ID
     */
    public Long getUserId() 
    {
        return userId;
    }

    /**
     * 设置用户昵称
     * @param nickName 用户昵称，从sys_user表关联查询获得
     */
    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    /**
     * 获取用户昵称
     * @return 用户昵称
     */
    public String getNickName() 
    {
        return nickName;
    }

    /**
     * 设置用户账号
     * @param userName 用户账号，从sys_user表关联查询获得
     */
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    /**
     * 获取用户账号
     * @return 用户账号
     */
    public String getUserName() 
    {
        return userName;
    }

    /**
     * 设置用户余额
     * @param balance 用户当前余额，精确到分
     */
    public void setBalance(java.math.BigDecimal balance) 
    {
        this.balance = balance;
    }

    /**
     * 获取用户余额
     * @return 用户当前余额
     */
    public java.math.BigDecimal getBalance() 
    {
        return balance;
    }

    /**
     * 设置变更余额数
     * @param changeBalance 变更余额数（可选字段，用于余额变更记录）
     */
    public void setChangeBalance(java.math.BigDecimal changeBalance) 
    {
        this.changeBalance = changeBalance;
    }

    /**
     * 获取变更余额数
     * @return 变更余额数
     */
    public java.math.BigDecimal getChangeBalance() 
    {
        return changeBalance;
    }

    /**
     * 设置变更类型
     * @param changeType 变更类型（1增加 2减少，可选字段，用于余额变更记录）
     */
    public void setChangeType(Integer changeType) 
    {
        this.changeType = changeType;
    }

    /**
     * 获取变更类型
     * @return 变更类型
     */
    public Integer getChangeType() 
    {
        return changeType;
    }

    /**
     * 设置变更原因
     * @param changeReason 变更原因（可选字段，用于余额变更记录）
     */
    public void setChangeReason(String changeReason) 
    {
        this.changeReason = changeReason;
    }

    /**
     * 获取变更原因
     * @return 变更原因
     */
    public String getChangeReason() 
    {
        return changeReason;
    }
}
